Cloud computing providers deliver computing infrastructures as a fully outsourced service, enabling companies to reduce capital expenditure on hardware, software and support services by paying a provider only for what they use. Cloud computing services may be offered at various layers of the software stack. At lower layers, Infrastructure as a Service (IaaS) systems allow users to have access to virtual machines (VMs) hosted by the provider, and the users are responsible for providing the entire software stack running inside a VM. At higher layers, Software as a Service (SaaS) systems offer online applications that can be directly executed by the users. With the increase of clients in cloud based computing, the load on various VM nodes providing the cloud computing services may increase manifold.